package co.edu.uniquindio.ondas.negocio;

import java.util.List;

import co.edu.uniquindio.ondas.dtos.ResumenEvaluacionDTO;
import co.edu.uniquindio.ondas.entidades.Bitacora1Maestro;
import co.edu.uniquindio.ondas.entidades.Bitacora2;
import co.edu.uniquindio.ondas.entidades.Bitacora2Maestro;
import co.edu.uniquindio.ondas.entidades.Bitacora3;
import co.edu.uniquindio.ondas.entidades.Bitacora3Maestro;
import co.edu.uniquindio.ondas.entidades.EvaluacionProyectos;
import co.edu.uniquindio.ondas.entidades.Evaluador;
/**
 * @author Javier
 *Interface que define los metodos  para el EvaluadorEJB
 *permite realizar las operaciones del Evaluador
 */
public interface EvaluadorEJBInterface {
	
	/**
	 * Metodo que permite iniciar una Sesion a un Evaluador
	 * @param id
	 * @param clave
	 * @return
	 */
	public boolean inicioSesionEvaluador(String id, String clave);

	/**
	 * Metodo que permite modificar la cuenta de un Evaluador registrado en el sistema
	 * @param evaluador
	 * @return
	 */
	public boolean modificarEvaluador(Evaluador evaluador);

	/**
	 * Metodo que permite obtener un listado del resumen de una Evaluacion
	 * @param idEvaluador
	 * @return Lista del resumen de una Evaluacion
	 */
	public List<ResumenEvaluacionDTO> obtenerResumenEvaluacion(
			String idEvaluador);

	/**
	 * Metodo que permite obtener una Bitacora2
	 * @param idInvestigacion
	 * @return Bitacora2
	 */
	public Bitacora2 getBitacora2(long idInvestigacion);

	/**
	 * Metodo que permite obtener una Bitacora2
	 * @param idInvestigacion
	 * @return Bitacora3
	 */
	public Bitacora3 getBitacora3(long idInvestigacion);

	/**
	 * Metodo que permite obtener una Bitacora1Maestro
	 * @param idInvestigacion
	 * @return Bitacora1Maestro
	 */
	public Bitacora1Maestro getBitacora1Maestro(long idInvestigacion);

	/**
	 *  Metodo que permite obtener una Bitacora2Maestro
	 * @param idInvestigacion
	 * @return Bitacora2Maestro
	 */
	public Bitacora2Maestro getBitacora2Maestro(long idInvestigacion);

	/**
	 *  Metodo que permite obtener una Bitacora3Maestro
	 * @param idInvestigacion
	 * @return Bitacora3Maestro
	 */
	public Bitacora3Maestro getBitacora3Maestro(long idInvestigacion);

	/**
	 * Metodo que permite evaluar una Investigacion
	 * @param evaluacion
	 * @param idInvestigacion
	 * @param idEvaluacion
	 * @param idEvaluador
	 * @return operador logico (Indica evaluada no evaluada)
	 */
	public boolean evaluarInvestigacion(EvaluacionProyectos evaluacion,
			long idInvestigacion, long idEvaluacion, String idEvaluador);

	/**
	 * Metod que permite obtener el numer de estudiantes que pertenecen a un grupo registrado en el sistema
	 * @param idGrupo
	 * @return total estudiantes Grupo
	 */
	public long obtenerNumeroEstudiantesGrupo(long idGrupo);

	/**
	 * Meotodo que permite obtener el total de Maestro que pertenecen a un Grupo
	 * @param idGrupo
	 * @return total de  numero Maestros Grupo
	 */
	public long obtenerNumeroMaestrosGrupo(long idGrupo);
}
